﻿using System;
using System.Linq;
using Hotel2.App_Data;

namespace Hotel_Management.Manager
{
    public partial class PersonelHotelu : System.Web.UI.Page
    {
        private BazaDanych _db;

        protected void Page_Load(object sender, EventArgs e)
        {
            _db = new BazaDanych();
        }

        protected void SubmitButtonClick(object sender, EventArgs e)
        {
            var idPracownika = 0;
            var imie = "";
            var nazwisko = "";
            var pesel= "";
            var login = "";

            var formValid = new bool[5];

            //walidacja id pracownika
            if (Walidacja.IsIntegerNumber(textIdPracownika))
            {
                idPracownika = Convert.ToInt32(textIdPracownika.Text);
                formValid[0] = true;
                error1.Visible = false;
            }
            else
            {
                formValid[0] = false;
                error1.Visible = true;
            }

            //walidacja imie
            if (Walidacja.IsStringNotEmpty(textImie))
            {
                imie = textImie.Text;
                formValid[1] = true;
                error2.Visible = false;
            }
            else
            {
                formValid[1] = false;
                error2.Visible = true;
            }

            //walidacja nazwisko
            if (Walidacja.IsStringNotEmpty(textNazwisko))
            {
                nazwisko = textNazwisko.Text;
                formValid[2] = true;
                error4.Visible = false;
            }
            else
            {
                formValid[2] = false;
                error4.Visible = true;
            }

            //walidacja peselu
            if (Walidacja.IsPeselValid(textPesel))
            {
                pesel = textPesel.Text;
                formValid[3] = true;
                error5.Visible = false;
            }
            else
            {
                formValid[3] = false;
                error5.Visible = true;
            }

            //walidacja loginu
            if (Walidacja.IsStringNotEmpty(textLogin))
            {
                var tmp = from a in _db.Pracownicies select a.Login; //wydobycie loginow
                var listOfLogins = tmp.ToList(); // konwersja do listy

                if (!Walidacja.IsLoginExists(textLogin.Text, listOfLogins))
                {
                    login = textLogin.Text;
                    formValid[4] = true;
                    error2.Visible = false;
                }
                else
                {
                    formValid[4] = false;
                    error2.Visible = true;
                    error2.Text = "   " + "Login juz istnieje podaj inny !";
                }
            }
            else
            {
                formValid[4] = false;
                error5.Visible = true;
            }

            if (Walidacja.IsFormValid(formValid))
            {
                var nowyPracownik = new Pracownicy
                                               {
                                                   id_pr = idPracownika,
                                                   imie = imie,
                                                   nazwisko = nazwisko,
                                                   PESEL = pesel,
                                                   Login = login,
                                                   Stanowisko = ddlPosition.SelectedValue
                                               };

                _db.Pracownicies.InsertOnSubmit(nowyPracownik);

                try
                {
                    _db.SubmitChanges();
                }
                catch (Exception ex)
                {
                    error1.Text = "   " + ex.Message;
                }

                Response.Redirect(Request.RawUrl);
            }
        }
    }
}